When two nodes communicate packets through a network such as the Internet, some packets may be lost. Techniques concerning packet retransmission methods have been proposed as methods of addressing packet loss. JP-9-46375A (hereinafter referred to as “Document 1”) discloses an example thereof.
In a technique disclosed in Document 1, the flow and order of transmission packets are controlled between a transmission node and a reception node where, when a queue is caused by packet loss on the reception node, or when the reception node fails to receive packets associated with the queue in a certain time period, the transmission node is notified of a request for retransmitting the packets associated with the queue.
Also, when a plurality of flows exist between two nodes, packet retransmission and order control are conducted on a flow-by-flow basis, for example, using TCP (Transmission Control Protocol (see Standard rfc793) or the like.
Further, if multiplexed losses take place, the reception node prevents redundant retransmissions and restrains delays caused by retransmissions by means of Sack (TCP Selective Acknowledgment Options (see Standard rfc2018)) for simultaneously conveying a plurality of pieces of packet loss information to the transmission node.
Also, when a plurality of paths are available between two nodes, a mobile inverse max (multiplexing technique) is known including means for transmitting retransmission packets, subjected to a retransmission, through a path that has the shortest delay from among the plurality of paths. The mobile inverse max is disclosed in T. Nakata et al., “Efficient bundling of heterogeneous radio resources for broadband Internet Access from moving vehicles” (in proceedings of Global Mobile Congress 2004, Oct. 11-13, 2004, Shanghi, China.) (hereinafter referred to as “Document 2”). The technique disclosed in Document 2 can reduce a delay caused by a retransmission, as compared with a closed retransmission control which is conducted only for a single path.
In the following, the Sack-based packet retransmission control will be described with reference to FIG. 1.
FIG. 1 shows retransmission processing when three packets having sequence numbers 2, 3, 4 are lost within nine packets which have been given sequence numbers 1 through 9 and transmitted by transmission node 101 and.
Upon receipt of packet 201 that has been given the sequence number of 5 from transmission node 101, reception node 102 returns acknowledgement message 301 to transmission node 101. FIG. 1 shows that acknowledge message 301 is returned from reception node 102 to transmission node 101 when reception node 102 has received several packets up to packet 401 having sequence number 6. Acknowledge message 301 includes an Ack field and a Sack field. The Ack field contains “2” which is the smallest sequence number that has been given to an unreceived packet. This is because, in the example of FIG. 1, reception node 102 has received a packet having sequence number 1.
The Sack field is used only when there are received packets which have sequence numbers larger than the one contained in the Ack field. The Sack field includes a Left field and a Right field. Received packets having continuous sequence numbers are grouped into a Block (block), and for each block, the sequence number of the first packet is contained in the Left field, while the smallest sequence number that has been given to an unreceived packet after the block is contained in the Right field.
In the example of FIG. 1, the Sack field shows an acknowledge message which is sent by reception node 102 when it has received several packets up to the packet that has sequence number 6. In this event, there is only one block comprised of packets having sequence numbers 5 and 6. Accordingly, as shown in FIG. 1, “5” is inserted into the Left field, and “7” is inserted into the Right field for this first Sack block.
Upon receipt of acknowledge message 301 from reception node 102, transmission node 101 recognizes from acknowledge message 301 that sequence numbers 1, 5, and 6 have been received, determines that packets having sequence numbers 2, 3, 4 have been lost, and retransmits the lost packets to reception node 102. As shown in FIG. 1, transmission node 101 receives the acknowledge message after the transmission of a packet having sequence number 9, and retransmits the lost packets to reception node 102.
FIG. 1 also shows a scenario where the speed on the transmission path fluctuates to increase the transmission delay for packets having sequence numbers 7 onward. For this reason, not only packets having sequence numbers 7, 8, 9, but also retransmission packets having sequence numbers 2, 3, 4, retransmitted after those packets, are transmitted with a larger transmission delay as compared with that when they were transmitted the first time.
When a plurality of paths are available between two nodes and if such a reduction in speed occurs on one of them, the mobile inverse max disclosed in Document 2 can be used to reduce a delay of retransmission packets. In the following, the technique involved therein will be described with reference to FIG. 2.
FIG. 2 shows that two paths, i.e., path 1 and path 2 are available between transmission node 101 and reception node 102. On path 1, packets having sequence numbers 2, 3, 4 are lost as is the case with FIG. 1, and packets having sequence numbers 7 onward suffer from an increased transmission delay due to a lower speed as compared with previous packets. Path 2 does not suffer from packet loss or lower speed.
Due to the loss of packets having sequence numbers 2, 3, 4, “2” is inserted into the Ack field of acknowledge message 301; “5” is inserted into the Left field associated with the first Sack block; and “7” is inserted into the Right field, as is the case with the example of FIG. 1. Resulting acknowledge message 301 is received by transmission node 101, allowing transmission node 101 to detect the lost packets.
On the other hand, since no packets are lost on path 2, reception node 102 returns acknowledge message 302, which only comprises the Ack field, to transmission node 101. Path 2 nor does suffer from a reduction in packet transmission speed from transmission node 101 to reception node 102. Accordingly, when comparing acknowledgement message 301 on path 1 with acknowledgement message 302 on path 2, which are simultaneously sent from reception node 102 to transmission node 101, the Ack field on path 2 contains a larger sequence number than that on path 1. Shown herein is acknowledgement message 302 with Ack field which contains sequence number 9.
Transmission node 101 predicts from the Ack fields of acknowledgement messages 301, 302 that path 2 has a smaller delay than path 1, and transmits packets having sequence numbers 2, 3, 4 on path 1 to reception node 102 through path 2. Reception node 102 is required to correctly recognize the sequence numbers of the packets retransmitted through path 2 in this way as the sequence numbers on path 1. For this purpose, in this system, each retransmission packet contains information for identifying from which path the packet was sent when it was transmitted the first time.
In this regard, in the example of FIG. 2, the sequence numbers given to packets have different series from one path to another. In the mobile inverse max, a series of sequence numbers can be assigned in units of arbitrary transfers, so that a different identifier is given to each series of sequence numbers. This identifier is referred to as retransmission ID (identification) (see Document 2). In the example of FIG. 2, when a different retransmission ID is given from one path to another, the retransmission ID serves as a path identifier for identifying a path.
Other ways that can be considered for assigning the retransmission ID may include a set of a plurality of TCP or UDP (User Datagram Protocol) sessions, a set of wireless lines belonging to the same wireless system, and the like. In these cases, when the retransmission ID is assigned in correspondence to a session or a line, the session or line can be identified by the retransmission ID, thus making it possible to increase the retransmission speed through a parallel transfer similar to the example of FIG. 2.